約 6,624,528 件
https://w.atwiki.jp/laxaqaleez/pages/12.html
domino設定をやっていない人はこちらから始めてください。 Dominoのインストールと初期設定 - DTMハイパー初心者講座 01 Domino の基礎知識 - 初心者になるための耳コピMIDI講座 midiyokeについて 仮想 MIDI ケーブル - 初心者になるための耳コピMIDI講 TiMidity++をmidiyokeを通してdominoで使う方法なら以下のサイトに詳しく書かれている。 ナナエフ dominoでサウンドフォントを使って高音質作曲 上記のサイトのとおりに設定したが鳴らないという状態になった。 何度か試行錯誤した後、以下の方法で解決した。 参考にしたサイト DominoとTiMidity++をつないでサウンドフォントを使う しふくのせんりつ まず、TiMidity++のtwsyngを起動する。 そうするとツールバーに黄色いスピーカーマークが出てくる。 ここで、マークをクリックする。 すると一番上に「シンセ開始」という項目がある。 それをクリックすることで、dominoで入力した音がなる。 これで音は出せるようになるが、毎回手動で起動するのは面倒くさいので、batファイルで同時起動させたほうがいいと思う。 ⇒サンプルbatファイル作りました。 ここをクリック 1:ダウンロードしたbatファイルを右クリックして、「編集」をクリック。 2:twsyng.exe、Domino.exeがあるパスに書き換える。 (大抵はCドライブのProgram Files中のDomino○○○ファイルとかCドライブ直下のtimidity○○○ファイルとかの中にある。) 3:上書き保存すれば、batファイルをクリックして同時に起動することができる。 twsyngは設定によっては、かなりコンピューターのリソースを食うので、使わない時はマークをクリックして「終了」でもさせたほうがいい。
https://w.atwiki.jp/emups2/pages/46.html
訂正&追加大歓迎です。 ※このページは2011年5月14日時点の最新版[PCSX2 0.9.8(r4600)]を元に説明します。 +... 用語集 EE/IOPEE/FPU Advanced Recompiler Options VUs GSFramelimiter Frame Skipping GS Window Speedhacks Game Fixes ↑をクリックするとこのページの一覧が開きます。 ※プレイ方法に書かれなかった、PCSX2本体の詳細設定を書いています。 プラグインの詳細設定はプラグイン設定で設定してください。 用語集 EE (Emotion Engine):PS2のメインプロセッサ。パソコンで言う所のCPU。内部にFPU、VU0、VU1の計3個の演算ユニットを持つ。 IOP (I/O Processor):周辺機器とのやりとりを司るサブプロセッサ。PS1のCPUと同じ。 GS (Graphics Synthesizer):グラフィックプロセッサ。ビデオカードに相当するが、頂点処理機能はEmition Engine側に置き、プログラマブルにしている。 SPU2 (Sound Processing Unit 2):サウンドプロセッサ FPU (Floating Point number processing Unit):EEに搭載されている浮動小数点演算ユニット。 VU (Vector Unit):EEに2系統搭載されているベクトル演算ユニット。主に3次元描画の座標変換などの頂点処理を担当し、DirectX8/9世代のビデオカードにおけるVertex Shaderに相当する。 EE/IOP EmotionEngine: IOP: EE/FPU Advanced Recompiler Options EEのFPUのリコンパイラの設定です。EEの浮動小数点演算命令を、x86系CPUにおけるSSEの浮動小数点演算命令に変換するのがリコンパイラですが、これら命令セット同士が一対一で等しく対応しているわけではないので、完全に演算結果を一致させるのは困難です。そのため、演算を細かく制御するためのオプションがここに用意されています。基本的には、演算の精度を上げてPS2実機に近づけば重くなり、逆に演算の精度を下げれば誤差は大きくなりますが軽くなります(例外もあります)。 Round Mode:浮動小数点演算の丸めモードを指定します。 基本的にはデフォルト (Chop/Zero) のままで良いです。変更すると不具合が出る事があります。 Nearest:最も近い正規化数に丸めます。いわゆる2進数の0捨1入。 Negative:切り捨てにより丸めを行います。 Positive:切り上げにより丸めを行います。 Chop/Zero:正数の時は切り捨て、負数の時は切り上げにより丸めを行います。 Clamping Mode:オーバーフロー (無限大/NaN) のチェックと丸めの有無を指定します。 None:オーバーフローのチェックを行いません。速度は上がりますが互換性は低下します。 Normal:演算結果に対してオーバーフローのチェックを行います (デフォルト) 。 Extra+Preserve Sign:Normalに加え、演算前や、積和演算の中間結果に対してもオーバーフローのチェックを行います。また、NaNの符号を保存します。一部のゲームの不具合が解消される事があります。 Full: Flush to Zero:浮動小数点演算の結果がアンダーフローにより非正規化数(絶対値が非常に小さい数)になった場合、0として扱うオプションです。演算精度は下がりますが、高速になります。 Denormals are Zero:浮動小数点演算の入力における非正規化数を0として扱うオプションです。非正規化数の浮動小数点演算はソフトウェアで行われるため、非常に低速です。そのため、0扱いすることにより非正規化数の演算そのものが発生しないようににする事ができます。 VUs VUのリコンパイラの設定です。EE/IOPと同じオプションが並んでいますが、デフォルトの設定は異なります。こちらの設定は主にグラフィックに影響を及ぼします。オプションの意味はEE Recs Optionsと同じです。 VUのDenormals are Zeroについて Denormals are Zero (DaZ) は現在のPCSX2ではデフォルトでオンになっています。DaZはあくまで速度向上のためのhackで、演算の精度を下げるから良くないと考える人も多いようですが、PS2のエミュレーションに限って言えばそれは誤りです。 何故かと言うと、DaZはIEEE754的に見ると確かに演算精度を下げるオプションですが、EEではそもそも非正規化数は0として扱うのが正しいので、DaZをオンにするのがエミュレーションとしては正確だからです。では、何故DaZがオプション扱いされてきたのでしょうか。それは、一部のゲームが浮動小数点の最大/最小命令を (おそらくFTOI系の命令と組み合わせて) 整数に対して使っているからです。浮動小数点の最大/最小命令は、符号が分かっていれば整数に対しても利用できます。VUの最大/最小命令は内部で純粋な論理比較を行っているらしく (Max(a, b) = Sign(a) Sign(b) ? b Sign(b) Sign(a) ? a Exponent_Mantissa(a) Exponent_Mantissa(b) ? (Sign(a) ? b a) (Sign(a) ? a b);)、浮動小数点数としては非正規化数である可能性がある整数を入力しても特に何も起こりません。一方でx86の浮動小数点最大/最小命令では、DaZがオンになっていると、問答無用で非正規化数を0にしてしまうため、整数には使えません。そこで、PCSX2での最大/最小命令のエミュレーションでは、単精度の浮動小数点数の指数部をバイアスして倍精度として扱い、単精度における非正規化数を倍精度で正規化数に見せることでこれを回避しています。 GS 主にフレームリミットの設定ができます。 Framelimiter Disable FrameLimiting:チェックすると、フレームリミットを無効にできます。ゲーム画面でF4キーを押すとこれと同じことができます。 Base Framerate Adjust:通常のフレームレート Slow Motion Adjust:スローモーションのフレームレート Turbo Adjust:ターボモードのフレームレート NTSC Framerate:NTSCのゲーム(日本のゲームはこれ)でのFPSを指定できます。通常は59.94FPSのままで問題ありません。 PAL Framerate:PALのゲームでのFPSを指定できます。通常は50.0FPSのままで問題ありません。 Frame Skipping Disabled:フレームスキップを無効にします。 Skip when on Turbo only:ターボモードのみにフレームスキップが有効になります。 Constant skipping:常にフレームスキップを行います。 ○ Frames to Draw:フレーム描写 ○ Frames to Skip:フレームスキップ Use Synchronized MTGS:チェックすると、マルチスレッドGS利用時に(タイミングの問題で)稀に起きる問題を解決します。 しかし結果として、速度がとても遅くなってしまう可能性があります。 Disable all GS output: GS Window プラグイン側で設定していた項目の一部がこちらへ移動となったようです。 Aspect Ratio:画面のアスペクト比を設定します。4 3か16 9、Fit to Window/Screen(アスペクト固定なし)が選べます。なお、ここで16 9を指定してもワイドスクリーン非対応のゲームで描写範囲が広がるわけではありません。4 3画面が16 9に引き伸ばされるだけです。一部のゲームはワイドスクリーンパッチでワイドスクリーンに対応させられます。くわしくは、こちら。 Custom Window Size:ウインドウモードを指定する場合、こちらでウインドウ画面のサイズを変更することができます。 Zoom:ゲーム画面を拡大・縮小することができます。 Disable windows resize border: Always hide mouse cursour:チェックを入れると、ゲームプレイ中にマウスカーソルが隠れます。 Hide windows when paused:チェックを入れると、ゲーム中にブラウザなど他のアプリケーションを操作すると自動的にゲームがポーズ状態になります。 Default to fullscreen mode on open:チェックを入れると、最初からフルスクリーンモードでプレイすることが出来ます。 Double-click toggles fullscreen mode:チェックを入れると、ゲーム画面をダブルクリックするとフルスクリーンモードへ移行します。 Wait for Vsync on refresh:垂直同期信号に同期して描画するかを設定します。スクロール時のちらつき等が解消されますが、描画は重くなります。 Dynamically toggle Vsync depending on frame rate: Speedhacks Enable speedhacks:チェックすると以下の設定ができるようになります。 EE Cyclerate:EEにおける同期処理の頻度を下げる事によって、速度を稼ぎます。1が通常の同期を行い、2が同期の頻度を1/2に下げ、3が同期の頻度を1/3に下げることができます。 フレームレート向上の効果が出易い反面、不具合が出るゲームも多く、同期のタイミングに敏感なゲームでは、フレームレートが上がっても動作がぎこちなくなる、処理落ちが発生する、固まる等の不具合が発生する可能性があります。 Enable INTC Spin Detection:割り込みコントローラでの不要な同期処理を省く事で、高速化を行います。一部のゲームで大きな効果があります。 Enable Wait Loop Detection: Enable fast CDVD: Enable BIFC0 Spin Detection:一部のゲームである程度の効果があります。 IOP x2 cycle rate hack:IOPで同期を行う頻度を1/2に下げます。 mVU Flag Hack: mVU Block Hack: Game Fixes Enable manual game fixes:チェックを入れると、下のチェックボックスにチェックを入れることが出来ます。 ある特定のゲームでの動作の不具合を解消するチェックボックスです。該当するゲーム以外では基本的に使用してはいけません。 VU Add Hack:トライエース作品のゲームにおける不具合を解消します。 VU Clip Flag Hack:「ペルソナ」の不具合を解消します。 FPU Compare Hack:「Digimon Rumble Arena 2」の不具合を解消します。 FPU Multiply Hack:「テイルズ オブ デスティニー」の不具合を解消します。 FPU Negative Div Hack:ガンダム作品の不具合を解消します。(ガンダム無双2のムービー再生) VU XGkick Hack:「Erementar Geard」の不具合を解消します。 FFX videos fix:「ファイナルファンタジーX」の不具合(ムービー再生)を解消します。 EE timing hack: Skip MPEG hack: OPH Flag hack: Ignore DMAC writes when it is busy.: Switch to GSdx software rendering when an FMV plays:サルゲッチュ2、零、三国無双4、FF10-2などムービーの不具合を解消します。
https://w.atwiki.jp/mayshared/pages/571.html
詳細設定 各B級設定へのリンクページです 「B級設定」とはA級設定よりも詳しい決まりごとで、ほとんどの作品に共通する大事な設定のことです ①世界観 ②舞台 ③年表・沿革 ④双葉学園 ⑤時代設定 ⑥異能 ⑦異能力者 ⑧ラルヴァ ⑨醒徒会 ⑩身体強化系 ⑪超能力系 ⑫魔術師系 ⑬超科学系 【リンク】 トップページ 基本設定 「設定」について
https://w.atwiki.jp/sevenlives/pages/2573.html
Win32 API? Microsoft
https://w.atwiki.jp/kitay/pages/29.html
2011/05/14 13 35 Sat Win32ウィンドウメッセージ 定義はWinUser.hを参照 using System.Windows.Interop; /// summary /// Window Messages/// /summary publicenum WindowsMessage{/// summary /// ウィンドウが移動した時/// /summary WM_MOVE= 0x0003,/// summary /// ウィンドウのサイズが変更された時/// /summary WM_SIZE= 0x0005,/// summary /// 非クライアント領域でマウスカーソルが移動した時/// /summary WM_NCMOUSEMOVE= 0xa0,/// summary /// 非クライアント領域でマウスの左ボタンを押す/// /summary WM_NCLBUTTONDOWN= 0xA1,/// summary /// 非クライアント領域でマウスの左ボタンを離す/// /summary WM_NCLBUTTONUP= 0xA2,/// summary /// 非クライアント領域でマウスの左ボタンのダブルクリック/// /summary WM_NCLBUTTONDBLCLK= 0xA3,/// summary /// 非クライアント領域でマウスの右ボタンを押す/// /summary WM_NCRBUTTONDOWN= 0xA4,/// summary /// 非クライアント領域でマウスの右ボタンを離す/// /summary WM_NCRBUTTONUP= 0xA5,/// summary /// システムメニューを選択/// /summary WM_SYSCOMMAND= 0x0112,} /// summary /// WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes/// /summary publicenum MouseHitTestCodes{HTERROR= (-2),HTTRANSPARENT= (-1),HTNOWHERE= 0,HTCLIENT= 1,HTCAPTION= 2,HTSYSMENU= 3,HTGROWBOX= 4,HTSIZE= HTGROWBOX,HTMENU= 5,HTHSCROLL= 6,HTVSCROLL= 7,HTMINBUTTON= 8,HTMAXBUTTON= 9,HTLEFT= 10,HTRIGHT= 11,HTTOP= 12,HTTOPLEFT= 13,HTTOPRIGHT= 14,HTBOTTOM= 15,HTBOTTOMLEFT= 16,HTBOTTOMRIGHT= 17,HTBORDER= 18,HTREDUCE= HTMINBUTTON,HTZOOM= HTMAXBUTTON,HTSIZEFIRST= HTLEFT,HTSIZELAST= HTBOTTOMRIGHT,HTOBJECT= 19,HTCLOSE= 20,HTHELP= 21,}void _Loaded( object sender, RoutedEventArgs e ){varhelper= new WindowInteropHelper(this);varhwndSource= HwndSource.FromHwnd( helper.Handle );varwndProcHandler= new HwndSourceHook( _WndProc );hwndSource.AddHook( wndProcHandler );} /// summary /// _WndProc/// /summary /// param name="hwnd" /param /// param name="msg" /param /// param name="wParam" /param /// param name="lParam" /param /// param name="handled" /param /// returns /returns private IntPtr _WndProc(IntPtrhwnd,intmsg,IntPtrwParam,IntPtrlParam,ref boolhandled){handled= false; switch( (Win32.WindowsMessage)msg ){caseWin32.WindowsMessage.WM_NCMOUSEMOVE break;caseWin32.WindowsMessage.WM_SIZE break;caseWin32.WindowsMessage.WM_MOVE break;caseWin32.WindowsMessage.WM_NCLBUTTONDOWN if( wParam.ToInt32() == (int)Win32.MouseHitTestCodes.HTCAPTION ){short x = (short)((lParam.ToInt32() 0xFFFF));short y = (short)((lParam.ToInt32() 16));}break;caseWin32.WindowsMessage.WM_NCLBUTTONDBLCLK break;caseWin32.WindowsMessage.WM_NCRBUTTONDOWN break;caseWin32.WindowsMessage.WM_NCRBUTTONUP break;} returnIntPtr.Zero;}
https://w.atwiki.jp/timidity/pages/14.html
よくある質問 よくある質問インプリメンテーション・チャートはないの? timidity.cfgにサウンドフォントのcfgを指定するには? サウンドフォントのcfgを書きたい プレーヤーとシーケンサで違う音が出る 音が出ない ドラムのリバーブが効かない 本来と違う楽器の音がするorプレイヤー起動時にエラーが出る たまに出てくる同音連打のバグについて詳しく。 複数ベロシティレイヤー、複数サンプル合成のフォントで音量バランスがおかしい ドラムセットが複数あるのに1つしか使えない ドラムのハイハットのオープンとクローズが同時に鳴ってしまうんだけど シーケンサーで鳴らすと少し遅れて聞こえるんだけど WindowsVista以降でTimidityDriverまたはMIDIYokeを使用したい Windows 7 64bitでTimidityDriverを使うとき インプリメンテーション・チャートはないの? 仕様、実装、バグもすべてソースに書いてある。 TiMidity++ システムエクスクルーシブ http //www.iridoatelier.net/document/timidsysx.html timidity.cfgにサウンドフォントのcfgを指定するには? source (CFGの名前).cfg と書き加える。CFGの名前に半角スペースを含む場合はCFG名を"でくくる。 例:source "hoge.cfg" サウンドフォントのcfgを書きたい 設定ファイル詳解等 http //timidity.s11.xrea.com/storeroom.htm Cfg For SoundFont http //xm.at.infoseek.co.jp/timidity/files/util/list.html CreateCFG ツール プレーヤーとシーケンサで違う音が出る C \WINDOWS\timidity.cfgを「source "TiMidity++をインストールしたディレクトリ\musix\timidity.cfg"」と書き換える。 プレイヤー側で読み込むCFGをC \WINDOWS\timidity.cfgに変更する。 スタンドアロンのプレーヤーと組み込みドライバではエフェクトのかかり方が違うことがあるので、twsyng.exeを使う。 音が出ない サウンドフォントの名前に誤りがないかチェック。 サウンドフォントの名前に半角スペースが入っている場合、""で囲む。 ドラムのリバーブが効かない 設定→エフェクトのNRPNドラムエフェクトのチェックを外す。 本来と違う楽器の音がするorプレイヤー起動時にエラーが出る ディレクトリの設定がおかしい(指定したディレクトリにSF2が無い、そもそもディレクトリが無いなど) CFGファイルに無効な文字列がある(存在しないオプションとか) SF2の名前に半角スペースがあるのに、""で囲っていない たまに出てくる同音連打のバグについて詳しく。 誰か教えてちょんまげ。 複数ベロシティレイヤー、複数サンプル合成のフォントで音量バランスがおかしい マルチレイヤー(ピアノ等)、マルチサンプル同時発音(ストリングス、ブラスセクション等)のサウンドフォントで、Initial Attenuation値を設定して複数サンプル/レイヤー間の音量バランスを調整してある場合、TiMidity++ではInitial Attenuation値が音量に反映されないので正常に演奏されない。 今のところサウンドフォントを改造してサンプル自体の音量を変更してしまう以外に対策はない。 ドラムセットが複数あるのに1つしか使えない timidity.cfgにsoundfont "(SF2名).sf2"と書けば一応音は出るが、細かい音量(amp)の調節や、パン(pan)の設定ができなかったり、ドラムセットが1つしか使えなかったりする。 これを避けるには、ツールページにある「Cfg For SoundFont」か、「CreateCFG」で生成されたCFGファイルを使う。 生成されたCFGファイルをtimidity.cfg(またはdirで指定したディレクトリ)に入れ、timidity.cfgに「source "(生成されたCFG名).cfg"」と書き足す。 ドラムのハイハットのオープンとクローズが同時に鳴ってしまうんだけど CFGのドラムセットの記述の部分に、 drumset 0 #extension altassign 42 44 46 と書き足す。drumset 0の下に書き足さないとエラーが出る。drumset 0の下に1個書いておけば、全部のドラムセットに適用される模様。 シーケンサーで鳴らすと少し遅れて聞こえるんだけど 仕様。#extension opt --rtsyn-latency=(数字)で設定できるが、0.04よりは少なくできない。つまり、どんなに頑張っても0.04秒だけ遅延が発生してしまう。 WindowsVista以降でTimidityDriverまたはMIDIYokeを使用したい XPまでは「サウンドとオーディオデバイス」の「MIDI 音楽の再生」からMIDIデバイスを設定できたが、Vista以降にはこれに当たる項目がない。 レジストリからMIDIデバイスを指定することも出来なくはないが、危険を伴うため以下のソフトを使用すると楽。MIDIせれくたー (MIDIせれくたー → MIDIせれくた-0.1) Windows 7 64bitでTimidityDriverを使うとき TiMidity++だけを語り尽くすスレ10 http //hibari.2ch.net/test/read.cgi/dtm/1256621598/ の 372より。 372 名前:動画の人(viliv s5)[sage] 投稿日:2010/05/09(日) 14 50 10 ID ObcdyoEw [2/3] ごめん、さっきの書き込みは忘れてください。 TiMidity-CVS081206_setup_JPN.exeに加えて、tim091213_100508_01_vc9.zipをC \timidityに上書きしたら解決した。 64bitOSだとドライバがうまくインストールできなかったから、timiditydrv.dllを直接C \Windows\SysWOW64に投げ込んだ。 再起動後、ちゃんとMapperで選べて、見失うこともなくなった。 何回もインストールを繰り返した結果なのか、MapperIDが全部、wdmaud.drvになってしまい TiMidityが選べなくなってしまった(笑) midi1~9のどれかをtimiditydrv.dllに変更したらちゃんと使えるようになった。 場所は以下のとおり。 ■32bitOS [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32] ■64bitOS [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
https://w.atwiki.jp/timidity/pages/15.html
各種ツール 各種ツールcreatecfg cfgeditor createcfg TiMidityスレその9 110,120氏作成のcfg作成ツール http //www15.atwiki.jp/timidity/pub/createcfg_v4_3_0.zipをダウンロードして解凍(旧バージョン:createcfg_v3_5.zip) 以下のツールをすべてcreatecfgと同じフォルダに入れる必要があります。 cfg for soundfonthttp //www.abcoroti.com/~bluewing/ (TiMidity導入解説ページ → VC2005 ビルド → Windows 版 cfgforsf ダウンロード) http //adai.sakura.ne.jp/old/timidity/ (Timidity関連ファイル→util) RDERR32.exe(v4.2からは不要)http //homepage3.nifty.com/k-takata/index.html (K.Takata s software → RDERR Ver.0.03 → rderr003.lzh) sox.exehttp //sox.sourceforge.net/Main/HomePage (MS-Windows executableをクリック) vol8p.csv、pan8p.csvhttp //timidity.s11.xrea.com/ (物置 → 各種音源データ v2003/4/3) 生成するには以上の準備を終えた上でサウンドフォントをcreatecfgのウィンドウにドロップすれば可能。 cfgファイルの内容についてはテンプレートのリンク先を参照。 http //beauty.geocities.jp/clg35kmh/ http //timidity.s11.xrea.com/files/doc-cfgj.htm など cfgeditor CFGファイル作成ツールとプレイヤーの詰め合わせ。 ダウンロードしてすぐに使えます。 http //www15.atwiki.jp/timidity/pub/timidity_ce.zipをダウンロードし、好きな場所に解凍。 timw32g.exeを起動し、MIDIを再生して音がなるか確認。SoundFontとCFGの変更はCFGEditor_v2.exeから。
https://w.atwiki.jp/noobmaster/pages/45.html
ファイル操作CreateFile ReadFile WriteFile DeleteFile MapViewOfFile ファイル実行WinExec CreateProcess system ShellExecute メモリ管理GetProcessHeap HeapAlloc HeapCreate HeapReAlloc HeapSize HeapFree HeapSetInformation ReadProcessMemory WriteProcessMemory スレッドGetCurrentThread GetCurrentThreadId SuspendThread ResumeThread GetThreadContext SetThreadContext CreateRemoteThread ディレクトリGetTempPath GetModuleFilename レジストリRegOpenKey ネットワークWSAStartup send recv bind accept コードページGetACP GetOEMCP GetCPInfo GetConsoleCP デバッガ検出IsDebuggerPresent CheckRemoteDebuggerPresent 未分類GetModuleHandle GetProcAddress LoadLibrary CreateMutex CreateService GetStartupInfo EnumProcess EnumProcessModules GetVersionEx SetWindowsHookEx VirtualAllocEx VirtualProtectEx gethostbyname gethostname GetCurrentProcess GetCurrentProcessId CreateToolhelp32Snapshot CallNextHookEx ファイル操作 CreateFile 新しいファイルの作成または既存のファイルを開いてそのハンドルを返す. HANDLE CreateFile( LPCTSTR lpFileName,// ファイル名 DWORD dwDesiredAccess,// アクセスモード DWORD dwShareMode,// 共有モード LPSECURITY_ATTRIBUTES lpSecurityAttributes,// セキュリティ記述子 DWORD dwCreationDisposition,// 作成方法 DWORD dwFlagsAndAttributes,// ファイル属性 HANDLE hTemplateFile// テンプレートファイルのハンドル ); ReadFile ファイルからデータを読み取る. BOOL ReadFile( HANDLE hFile,// ファイルのハンドル LPVOID lpBuffer,// データバッファ DWORD nNumberOfBytesToRead,// 読み取り対象のバイト数 LPDWORD lpNumberOfBytesRead,// 読み取ったバイト数 LPOVERLAPPED lpOverlapped// オーバーラップ構造体のバッファ ); WriteFile ファイルにデータを書き込む. BOOL WriteFile( HANDLE hFile,// ファイルのハンドル LPCVOID lpBuffer,// データバッファ DWORD nNumberOfBytesToWrite,// 書き込み対象のバイト数 LPDWORD lpNumberOfBytesWritten,// 書き込んだバイト数 LPOVERLAPPED lpOverlapped// オーバーラップ構造体のバッファ ); DeleteFile 既存のファイルを削除する. BOOL DeleteFile( LPCTSTR lpFileName // ファイル名 ); MapViewOfFile 呼び出し側プロセスのアドレス空間にファイルのビューをマップする. ランチャーやローダー,インジェクターはPEファイルを読み込んで改変するためにこの関数を利用する. マルウェアはファイルのコンテンツを改変する際にWriteFileの代わりにこの関数を利用することがある. LPVOID MapViewOfFile( HANDLE hFileMappingObject, // ファイルマッピングオブジェクトのハンドル DWORD dwDesiredAccess, // アクセスモード DWORD dwFileOffsetHigh, // オフセットの上位 DWORD DWORD dwFileOffsetLow, // オフセットの下位 DWORD SIZE_T dwNumberOfBytesToMap // マップ対象のバイト数 ); ファイル実行 WinExec 指定されたアプリケーションを実行する. 例 ダミーの文書ファイルの表示,ドロップされたファイルの実行 UINT WinExec( LPCSTR lpCmdLine,// コマンドラインへのポインタ UINT uCmdShow// ウィンドウの表示状態 ); CreateProcess 新しいプロセスを作成して実行する. BOOL CreateProcess( LPCTSTR lpApplicationName,// 実行可能モジュールの名前 LPTSTR lpCommandLine,// コマンドラインの文字列 LPSECURITY_ATTRIBUTES lpProcessAttributes,// セキュリティ記述子 LPSECURITY_ATTRIBUTES lpThreadAttributes,// セキュリティ記述子 BOOL bInheritHandles,// ハンドルの継承オプション DWORD dwCreationFlags,// 作成のフラグ LPVOID lpEnvironment,// 新しい環境ブロック LPCTSTR lpCurrentDirectory,// カレントディレクトリの名前 LPSTARTUPINFO lpStartupInfo,// スタートアップ情報 LPPROCESS_INFORMATION lpProcessInformation// プロセス情報 ); system Cランタイムライブラリによって提供されるプログラムを起動する. Windows上では,この関数はCreateProcess関数のラッパー関数として機能している. int system( const char *command ); ShellExecute 指定されたファイルに対して,指定された操作を実行する. HINSTANCE ShellExecute( HWND hwnd,// 親ウィンドウのハンドル LPCTSTR lpVerb,// 操作 LPCTSTR lpFile,// 操作対象のファイル LPCTSTR lpParameters,// 操作のパラメータ LPCTSTR lpDirectory,// 既定のディレクトリ INT nShowCmd// 表示状態 ); メモリ管理 GetProcessHeap 呼び出し側プロセスのヒープのハンドルを取得する. その後,HeapAlloc,HeapReAlloc,HeapFree,HeapSize の各関数でこのハンドルを使用できる. HANDLE GetProcessHeap(VOID); HeapAlloc メモリブロックをヒープから割り当てる. LPVOID HeapAlloc( HANDLE hHeap, // プライベートヒープブロックのハンドル DWORD dwFlags, // ヒープの割り当て方法の制御 SIZE_T dwBytes // 割り当てたいバイト数 ); HeapCreate 呼び出し側プロセスが使用できるヒープオブジェクトを作成する. この関数はプロセスの仮想アドレス空間内の領域を予約し,このブロック内の指定された初期のパートに物理格納域を割り当てる. HANDLE HeapCreate( DWORD flOptions, // ヒープ割り当て方法の属性 SIZE_T dwInitialSize, // 初期のヒープサイズ SIZE_T dwMaximumSize // 最大ヒープサイズ ); HeapReAlloc ヒープからメモリブロックを再割り当てする. この結果,メモリブロックのサイズや他のプロパティを変更できる. LPVOID HeapReAlloc( HANDLE hHeap, // ヒープブロックのハンドル DWORD dwFlags, // ヒープ再割り当てのオプション LPVOID lpMem, // 再割り当てしたいメモリへのポインタ SIZE_T dwBytes // 再割り当てしたいバイト数 ); HeapSize HeapAlloc 関数または HeapReAlloc 関数を使ってヒープから割り当てたメモリブロックのサイズをバイト単位で取得する. DWORD HeapSize( HANDLE hHeap, // ヒープのハンドル DWORD dwFlags, // ヒープサイズに関するオプション LPCVOID lpMem // メモリへのポインタ ); HeapFree HeapAlloc 関数または HeapReAlloc 関数がヒープから割り当てたメモリブロックを解放する. BOOL HeapFree( HANDLE hHeap, // ヒープのハンドル DWORD dwFlags, // ヒープ解放オプション LPVOID lpMem // メモリへのポインタ ); HeapSetInformation 指定されたヒープの機能を有効にする. BOOL WINAPI HeapSetInformation( HANDLE HeapHandle, HEAP_INFORMATION_CLASS HeapInformationClass, PVOID HeapInformation, SIZE_T HeapInformationLength ); ReadProcessMemory 指定されたプロセスのメモリ領域からデータを読み取る. ただし,読み取られる領域全体がアクセス可能でなければならない. BOOL ReadProcessMemory( HANDLE hProcess, // プロセスのハンドル LPCVOID lpBaseAddress, // 読み取り開始アドレス LPVOID lpBuffer, // データを格納するバッファ DWORD nSize, // 読み取りたいバイト数 LPDWORD lpNumberOfBytesRead // 読み取ったバイト数 ); WriteProcessMemory 指定されたプロセスのメモリ領域にデータを書き込む. 書き込みたい領域全体がアクセス可能でなければならない. BOOL WriteProcessMemory( HANDLE hProcess, // プロセスのハンドル LPVOID lpBaseAddress, // 書き込み開始アドレス LPVOID lpBuffer, // データバッファ DWORD nSize, // 書き込みたいバイト数 LPDWORD lpNumberOfBytesWritten // 実際に書き込まれたバイト数 ); スレッド GetCurrentThread 現在のスレッドの擬似ハンドルを取得する. HANDLE GetCurrentThread(VOID); GetCurrentThreadId 呼び出し側スレッドのスレッド識別子を取得する. DWORD GetCurrentThreadId(VOID); SuspendThread 指定されたスレッドの実行を中断する. DWORD SuspendThread( HANDLE hThread // スレッドのハンドル ); ResumeThread スレッドのサスペンド(中断)カウントを 1 減らす. サスペンドカウントが 0 になるとスレッドの実行が再開される. DWORD ResumeThread( HANDLE hThread // スレッドのハンドル ); GetThreadContext 指定したスレッドのコンテキストを取得する. スレッドのコンテキストは,レジスタ値や現在の状態などスレッドの全ての情報を格納している. BOOL GetThreadContext( HANDLE hThread, // コンテキストを持つスレッドのハンドル LPCONTEXT lpContext // コンテキストを受け取る構造体のアドレス ); SetThreadContext 指定したスレッドのコンテキストを設定する. いくつかのインジェクション技術でこの関数を利用される. BOOL SetThreadContext( HANDLE hThread, // このテキストを持つスレッドのハンドル CONST CONTEXT *lpContext // コンテキストが入った構造体のアドレス ); CreateRemoteThread 別のプロセスのアドレス空間で稼働するスレッドを作成する. ランチャーやステルスマルウェアが他のプロセスに対してコードインジェクションする際にこの関数を利用することがある. HANDLE CreateRemoteThread( HANDLE hProcess,// 新しいスレッドを稼働させるプロセスを識別するハンドル LPSECURITY_ATTRIBUTES lpThreadAttributes, // スレッドのセキュリティ属性へのポインタ DWORD dwStackSize,// 初期のスタックサイズ (バイト数) LPTHREAD_START_ROUTINE lpStartAddress, // スレッド関数へのポインタ LPVOID lpParameter,// 新しいスレッドの引数へのポインタ DWORD dwCreationFlags,// 作成フラグ LPDWORD lpThreadId// 取得したスレッド識別子へのポインタ ); ディレクトリ GetTempPath 一時ファイル用のディレクトリのパスを取得する. マルウェアがこの関数を呼び出している場合,一時ファイルパスにファイルの読み書きをしているかどうかを確認する. DWORD GetTempPath( DWORD nBufferLength,// バッファのサイズ LPTSTR lpBuffer// パスを格納するバッファ ); GetModuleFilename 指定されたモジュールを含む実行ファイルの,フルパス名とファイル名を取得する. マルウェアは現在の実行プロセス内でファイルをコピーまたは改変するためにこの関数を使用する. DWORD GetModuleFileName( HMODULE hModule,// モジュールのハンドル LPTSTR lpFilename,// モジュールのファイル名 DWORD nSize// バッファのサイズ ); レジストリ RegOpenKey 指定されたレジストリキーを開く. LONG RegOpenKey( HKEY hKey, // 開いている親キーのハンドル LPCTSTR lpSubKey, // 開くべきサブキーの名前 PHKEY phkResult // 開くことに成功したサブキーのハンドル ); ネットワーク WSAStartup ローレベルのネットワーク機能(Winsock DLL)の初期化を行う. このAPIを探索するのが,ネットワークに関連する機能が開始する位置を特定するための簡単な手法である. int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); send リモートマシンにデータを送信する. マルウェアはC Cサーバにデータを送信する際にこの関数をよく利用している. int send( SOCKET s, const char *buf, int len, int flags ); recv リモートマシンからデータを受信する. マルウェアはC Cサーバからデータを受信する際にこの関数をよく利用している. int recv( SOCKET s, char *buf, int len, int flags ); bind ローカルアドレスとソケットを関連付ける. int bind( SOCKET s, const struct sockaddr *name, int namelen ); accept 外部からの接続試行を許可する. SOCKET accept( SOCKET s, struct sockaddr *addr, int *addrlen ); コードページ GetACP システムで現在有効になっている ANSI コードページの識別子を取得する. UINT GetACP(VOID); GetOEMCP システムで現在有効になっている OEM コードページの識別子を取得する. UINT GetOEMCP(void); GetCPInfo インストール済みの有効なコードページまたは利用可能なコードページに関する情報を取得する. BOOL GetCPInfo( UINT CodePage, // コードページの識別子 LPCPINFO lpCPInfo // 情報が格納されるバッファ ); GetConsoleCP 呼び出し側プロセスのコンソールが使う入力コードページを返す. コンソールはその入力コードページを使ってキーボード入力を対応する文字値に変換する. UINT GetConsoleCP(VOID); デバッガ検出 IsDebuggerPresent 呼び出し側プロセスがデバッガのコンテキストで実行されているかどうかを調べる. BOOL IsDebuggerPresent(VOID); CheckRemoteDebuggerPresent 特定のプロセスがデバッグされているかどうかをチェックする. この関数はマルウェアのアンチデバッグ技術の一部として時折使用される. BOOL WINAPI CheckRemoteDebuggerPresent( HANDLE hProcess, PBOOL pbDebuggerPresent ); 未分類 GetModuleHandle ロードされているモジュールのハンドルを取得する. マルウェアは当該モジュール位置の取得,コード改変,コードインジェクションのポイントを検索するためにこの関数を使用する. HMODULE GetModuleHandle( LPCTSTR lpModuleName // モジュール名 ); GetProcAddress ダイナミックリンクライブラリ(DLL)が持つ,指定されたエクスポート済み関数のアドレスを取得する. PEファイルヘッダにインポートされた関数に加えて,他のDLLから関数をインポートするのに使用される. FARPROC GetProcAddress( HMODULE hModule,// DLL モジュールのハンドル LPCSTR lpProcName// 関数名 ); LoadLibrary 指定された実行可能モジュールを,呼び出し側プロセスのアドレス空間内にマップする. ほぼ全てのWin32プログラムによってインポートされている関数である. HMODULE LoadLibrary( LPCTSTR lpFileName // モジュールのファイル名 ); CreateMutex 名前付きまたは名前なしのミューテックス(mutually exclusive;相互排他)オブジェクトを作成または開く. HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,// セキュリティ記述子 BOOL bInitialOwner,// 最初の所有者 LPCTSTR lpName// オブジェクトの名前 ); CreateService サービスオブジェクトを作成し,サービス制御マネージャ(Service Control Manager:SCM)の指定されたデータベースに追加する. SC_HANDLE CreateService( SC_HANDLE hSCManager, // SCM データベースのハンドル LPCTSTR lpServiceName, // 開始したいサービスの名前 LPCTSTR lpDisplayName, // 表示名 DWORD dwDesiredAccess, // サービスのアクセス権のタイプ DWORD dwServiceType, // サービスのタイプ DWORD dwStartType, // サービスを開始する時期 DWORD dwErrorControl, // サービスに失敗したときの深刻さ LPCTSTR lpBinaryPathName, // バイナリファイル名 LPCTSTR lpLoadOrderGroup, // ロード順序を決定するグループ名 LPDWORD lpdwTagId, // タグ識別子 LPCTSTR lpDependencies, // 複数の依存名からなる配列 LPCTSTR lpServiceStartName, // アカウント名 LPCTSTR lpPassword // アカウントのパスワード ); GetStartupInfo 呼び出し側プロセスを作成する際に指定された構造体の内容を取得する. VOID GetStartupInfo( LPSTARTUPINFO lpStartupInfo // スタートアップ情報 ); EnumProcess システム内の各プロセスオブジェクト用のプロセス識別子を取得する. BOOL EnumProcesses( DWORD * lpidProcess, // プロセス識別子を受け取る配列 DWORD cb, // 配列のサイズ DWORD * cbNeeded // 返されたバイト数 ); EnumProcessModules 指定されたプロセス内の各モジュールのハンドルを取得する. BOOL EnumProcessModules( HANDLE hProcess, // プロセスのハンドル HMODULE * lphModule, // モジュールハンドルを受け取る配列 DWORD cb, // 配列のサイズ LPDWORD lpcbNeeded // 必要なバイト数 ); GetVersionEx 現在動作しているオペレーティングシステムのバージョンに関する拡張情報を取得する. 動作環境の調査やバージョンの異なるWindows間で変更されている文書化されていない構造体にアクセスするためのオフセット選択のために利用される. BOOL GetVersionEx( LPOSVERSIONINFO lpVersionInfo // バージョン情報 ); SetWindowsHookEx アプリケーション定義のフックプロシージャをフックチェーン内にインストールする. HHOOK SetWindowsHookEx( int idHook, // フックタイプ HOOKPROC lpfn, // フックプロシージャ HINSTANCE hMod, // アプリケーションインスタンスのハンドル DWORD dwThreadId // スレッドの識別子 ); VirtualAllocEx 指定されたプロセスの仮想アドレス空間内のメモリ領域の予約とコミットの一方または両方を行う. LPVOID VirtualAllocEx( HANDLE hProcess, // 割り当てたいメモリを保持するプロセス LPVOID lpAddress, // 割り当てたい開始アドレス DWORD dwSize, // 割り当てたい領域のバイト単位のサイズ DWORD flAllocationType, // 割り当てのタイプ DWORD flProtect // アクセス保護のタイプ ); VirtualProtectEx 指定されたプロセスの仮想アドレス空間内のコミット済みページ領域に対するアクセス保護の状態を変更する. BOOL VirtualProtectEx( HANDLE hProcess, // プロセスのハンドル LPVOID lpAddress, // コミット済みページ領域のアドレス DWORD dwSize, // 領域のサイズ DWORD flNewProtect, // 希望のアクセス保護 PDWORD lpflOldProtect // 従来のアクセス保護を取得する変数のアドレス ); gethostbyname ホストデータベースからホスト名に対応するホスト情報を取得する. リモートホストに対してIPコネクションを確率する前に特定のホスト名でDNSルックアップを実行するのに使用される. C Cサーバとして機能するホスト名はネットワークベースのシグネチャを作成するのに利用できる. struct hostent* FAR gethostbyname( const char *name ); gethostname ローカルコンピュータの標準ホスト名を取得する. バックドアはターゲットマシンの調査にこの関数を利用することがある. int gethostname( char *name, int namelen ); GetCurrentProcess 現在のプロセスに対応する疑似ハンドルを取得する. HANDLE GetCurrentProcess(VOID); GetCurrentProcessId 呼び出し側プロセスのプロセス識別子を取得する. DWORD GetCurrentProcessId(VOID); CreateToolhelp32Snapshot プロセスとプロセスが使っているヒープ,モジュール,スレッドのスナップショットを作成する. マルウェアはしばしばプロセスまたはスレッドに対して反復処理するコードでこの関数を利用する. HANDLE WINAPI CreateToolhelp32Snapshot( DWORD dwFlags, DWORD th32ProcessID ); CallNextHookEx 現在のフックチェーン内の次のフックプロシージャにフック情報を渡す. SetWindowsHookEx関数によってセットされるイベントをフックするコードで使用される. SetWindowsHookExによってセットされるフックの目的を特定するためにはこの関数の分析を行うとよい. LRESULT CallNextHookEx( HHOOK hhk, // 現在のフックのハンドル int nCode, // フックプロシージャに渡すフックコード WPARAM wParam, // フックプロシージャに渡す値 LPARAM lParam // フックプロシージャに渡す値 );
https://w.atwiki.jp/yonta2/pages/33.html
PCの詳細設定まとめ。 基本はSS&イラスト用詳細設定のまとめですが。 SSや雑談で設定追加されたり、自キャラ設定補強したい・・など。 随時編集してくと良いよ!ということでよろしくお願いします。 国民設定 詳細設定元記事 国民一覧 国民設定 設定文・似顔絵イラスト。基本的な設定はこちら。 http //rimorobo.hp.infoseek.co.jp/kokuminsettei.htm 詳細設定元記事 SS&イラスト作成のためのPC詳細設定依頼スレッド(藩国会議所)。 (直リンク不可のためURLをコピー&ペーストして表示してください) ※まとめ作成にあたって元記事より一部編集しております。ご了承ください。 詳細設定のお願い その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=173 rev= no=0 KLOG=5 文族よりお願い(SS希望、台詞) その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=400 rev= no=0 KLOG=4 その2(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=1981 rev= no=0 KLOG=17 PC詳細設定 http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=all namber=2836 type=0 space=0 no=0 肖像画作成承ります(イラスト詳細設定お願い): その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=258 rev= no=0 KLOG=13 その2 http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=one namber=1980 type=0 space=0 no=0 国民一覧 よんた(PL:よんた) 竿崎 裕樹 (PL:ヒロキ) かくた(PL:かくた) 玖礼 蒼麒(PL:蒼麒) 忠汰(PL:ちゅ〜た) 槙 昌福(PL:槙) 支那実(PL:沙倉霞) 坂下真砂(PL:margo) 辻木 志朗(PL:sat) 雷羅来(PL:らい) グラジオラス (PL:グラ) 大村 やしほ(PL:やしほ) 言 成(PL:セイ) フィサリス(PL:ティーガー) ビリケン(PL:ビリケン ) 吉弥(PL:藤崎 ) 音在 誠自(PL:歌枕 ) 小野青空(PL:青空 )
https://w.atwiki.jp/yonta/pages/71.html
PCの詳細設定まとめ。 基本はSS&イラスト用詳細設定のまとめですが。 SSや雑談で設定追加されたり、自キャラ設定補強したい・・など。 随時編集してくと良いよ!ということでよろしくお願いします。 国民設定 詳細設定元記事 国民一覧 国民設定 設定文・似顔絵イラスト。基本的な設定はこちら。 http //rimorobo.hp.infoseek.co.jp/kokuminsettei.htm 詳細設定元記事 SS&イラスト作成のためのPC詳細設定依頼スレッド(藩国会議所)。 (直リンク不可のためURLをコピー&ペーストして表示してください) ※まとめ作成にあたって元記事より一部編集しております。ご了承ください。 詳細設定のお願い その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=173 rev= no=0 KLOG=5 文族よりお願い(SS希望、台詞) その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=400 rev= no=0 KLOG=4 その2 http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=one namber=1981 type=0 space=0 no=0 肖像画作成承ります(イラスト詳細設定お願い): その1(過去ログ) http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=al2 namber=258 rev= no=0 KLOG=13 その2 http //rimorobo.hp.infoseek.co.jp/cgi-bin/cbbs4/cbbs.cgi?mode=one namber=1980 type=0 space=0 no=0 国民一覧 よんた(PL:よんた) 竿崎 裕樹 (PL:ヒロキ) かくた(PL:かくた) 玖礼 蒼麒(PL:蒼麒) 忠汰(PL:ちゅ〜た) 槙 昌福(PL:槙) 支那実(PL:沙倉霞) 坂下真砂(PL:margo) 辻木 志朗(PL:sat) 雷羅来(PL:らい) グラジオラス (PL:グラ) 大村 やしほ(PL:やしほ) 言 成(PL:セイ) フィサリス(PL:ティーガー) ビリケン(PL:ビリケン ) 吉弥(PL:藤崎 ) 音在 誠自(PL:歌枕 ) 小野青空(PL:青空 )